# -*-coding utf-8 -*-

__project__ = 'le-bo16'
__file_name__ = 'class5'
__author__ = 'hqDu'
__time__ = '2020-11-06 22:43'
__product_name = 'PyCharm'
# @fileName :class5.py

# 复习
# 字符串是不可变数据类型，
# 只要对一种数据类型进行一种操作之后，类似分片，不变是可变数据类型；变是可变数据类型
# 可变数据类型都可进行增删改查，并且操作之后都不会变
# 每一种数据类型都有一个ID，操作之后变化的是不可变数据类型；没变化的是可变数据类型。
#
#
# 列表是可变数据类型，进行增删改查之后不会改变其本身
#
# my_list = [1, 2, 2, 3, 4, 5, 6]

# 去重操作，就是集合

# 增加数据，append() 把括号内的内容整体放到了列表里

# my_list是一个可变数据类型，进行增删改查，都会改变其本身

# None，增加的方法，仅仅是将方法（操作）打印出来，而不是my_list的值
# my_list.append([3, 4])，可以理解为一种操作，此操作不会有任何返回值
# print(my_list.append([3, 4]))
#
# my_list1 = my_list.append([3, 4])  # my_list是可变数据类型，操作后不需要进行赋值
# print(my_list1)  # None
#
# print(my_list)


my_list2 = [1, 2, 3, 4, 5]
# 可变数据类型，只需要有操作，不需要进行赋值；
# my_list.extend(my_list2)
# print(my_list)


# 不可变数据类型，操作之后需要赋值
# str = '123456'
# str1 = str[:3]

# append()和extend()的区别
# append()是把括号内列表连着中括号[]一齐追加到原列表之后
# extend()是把括号内列表去除中括号，然后追加到原列表之后
# append()和extend()都不会有返回值

# 在my_list的第3位之后增加一个列表，这个增加是包括中括号的
# 可以增加string，int，float、bool，或变量
# 在某一个位置之后增加数据
# my_list.insert(3, [2, 3])
# my_list.insert(3, '1')
# my_list.insert(3, True)
# print(my_list)



# 改
# 通过下标改变值
# my_list = [1, 2, 2, 3, 4, 5, 6]
# print(my_list[2])
# my_list[2] = 10
# print(my_list)
# # 空字符串也是值
# my_list[0] = ''
# print(my_list)



# 查列表中是不是有某些元素  in   not in   index  count
# if 1 in my_list:
# 	print('haha')
#
# if 1 not in my_list:
# 	print('haha')
# else:
# 	print('heihei')

# index = my_list.index(1)   #有返回下标索引，没有报错
# print(index)
#
# count = my_list.count(1)   #0表示没有，非零表示有
# print(count)
# 赋值是否有返回值
# 1. 是否为可变数据类型
# 2. 操作是否有返回值
# 不可变数据类型，任何操作都需要赋值；
# 但是，可变数据类型，操作有返回值的才需要赋值。


# 删除列表中某些元素  pop()  del  remove() clear()

# pop()，里面填下标，删除下标对应值或不填写；超出索引范围会报错
# index = my_list.pop(2)  # 返回被删除的下标
# print(index)
# index = my_list.pop()  # 默认删除最后一个元素

# del，超出索引范围会报错
# del my_list[2]

# remove
# my_list.remove(6)

# clear 清空my_list
# a = my_list.clear()
# print(a)  # None

# 作业：列表写猜拳


# 列表排序
# my_list.sort(reverse = False)  #默认升序，从小到大
# my_list.sort()
# my_list.sort(reverse = True)  #降序，从大到小

# 倒序
# a = my_list[::-1]
# # 逆序
# my_list.reverse()
# print(my_list)

# 数字和字母按照ASCII码进行排序，中文置于数字字母之后，
# 中文转换为二进制/十六进制，再进行排序
# a = ['12','11','23','saada','ee','我']
# a.sort()
# print(a)

# 列表嵌套，一个列表嵌套另一个列表，二维列表
# 三维列表
schoolNames = [['北京大学','清华大学'],
               ['南开大学',['天津大学'],'天津师范大学'],
               ['山东大学','中国海洋大学']]

# print(schoolNames[1][1][0])
# print(type(schoolNames[1][1][0]))  # 字符串 天津大学
# print(schoolNames[1][1])
# print(type(schoolNames[1][1]))  # 列表  天津大学
print(schoolNames[0])
print(type(schoolNames[0]))
print(schoolNames[0][1])
print(type(schoolNames[0][1]))
print(schoolNames[0][1][1])
print(type(schoolNames[0][1][1]))
"""
一个学校，三个办公室，八位老师，随机分配办公室
"""

